/** * Copyright (C) Intersect 2012. * * This module contains Proprietary Information of Intersect, * and should be treated as Confidential. */ package au.org.intersect.exsite9.dao; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import static org.mockito.Mockito.*; import org.junit.Test; import org.mockito.Mockito; import au.org.intersect.exsite9.domain.MetadataCategory; import au.org.intersect.exsite9.domain.MetadataCategoryType; import au.org.intersect.exsite9.domain.MetadataCategoryUse; /** * Tests {@link MetadataCategoryDAO} */ public final class MetadataCategoryDAOUnitTest { @Test public void testCreateMetadataCategory() { final EntityManager em = Mockito.mock(EntityManager.class); final EntityTransaction et = Mockito.mock(EntityTransaction.class); final MetadataCategoryDAO toTest = new MetadataCategoryDAO(em); final MetadataCategory mdc = new MetadataCategory("My MDC Name", MetadataCategoryType.CONTROLLED_VOCABULARY, MetadataCategoryUse.optional); when(em.getTransaction()).thenReturn(et); toTest.createMetadataCategory(mdc); verify(et).begin(); verify(em).persist(mdc); verify(et).commit(); } @Test public void testUpdateMedataCategory() { final EntityManager em = Mockito.mock(EntityManager.class); final EntityTransaction et = Mockito.mock(EntityTransaction.class); final MetadataCategoryDAO toTest = new MetadataCategoryDAO(em); final MetadataCategory mdc = new MetadataCategory("My MDC Name", MetadataCategoryType.CONTROLLED_VOCABULARY, MetadataCategoryUse.optional); when(em.getTransaction()).thenReturn(et); toTest.updateMetadataCategory(mdc); verify(et).begin(); verify(em).merge(mdc); verify(et).commit(); } @Test public void testFindByID() { final EntityManager em = Mockito.mock(EntityManager.class); final MetadataCategoryDAO toTest = new MetadataCategoryDAO(em); toTest.findById(7l); verify(em).find(MetadataCategory.class, 7l); } @Test public void testDelete() { final EntityManager em = Mockito.mock(EntityManager.class); final EntityTransaction et = Mockito.mock(EntityTransaction.class); final MetadataCategoryDAO toTest = new MetadataCategoryDAO(em); final MetadataCategory mdc = new MetadataCategory("My MDC Name", MetadataCategoryType.CONTROLLED_VOCABULARY, MetadataCategoryUse.optional); when(em.getTransaction()).thenReturn(et); when(em.merge(mdc)).thenReturn(mdc); toTest.delete(mdc); verify(em).remove(mdc); } }